package cn.sdhuijin.service;

import java.util.List;

import cn.sdhuijin.model.Branch;
import cn.sdhuijin.tree.branchtree.Node;
import cn.sdhuijin.tree.selecttree.SelectNode;

/**
 * 机构维护
 * 
 * @author sunp@sdhuijin.cn
 * @version 创建时间：2014年12月25日 上午9:26:46
 */
public interface BranchService {

	/**
	 * 创建新机构
	 * 
	 * @param branch
	 */
	public void addBranch(Branch branch);

	/**
	 * 获取所有机构
	 * 
	 * @return
	 */
	public List<Branch> allBranches();

	/**
	 * 机构columntree
	 * 
	 * @param branch
	 * @param isAdmin
	 *            是否是管理员，是为true，否为false
	 * @return
	 */
	public List<Node> columnTreeNode(Branch branch, Boolean isAdmin);

	/**
	 * 机构selecttree
	 * 
	 * @return
	 */
	public List<SelectNode> selectTreeNode(Branch branch, Boolean isAll);

	/**
	 * 
	 * @param llo
	 * @return
	 */
	public void BatchImport(List<List<Object>> llo) throws Exception;

	/**
	 * 所有下级机构
	 * 
	 * @param branch
	 * @return
	 */
	public List<Branch> subordinateBranches(Branch branch);

	/**
	 * 根据id查询
	 * 
	 * @param id
	 * @return
	 */
	public Branch searchOne(String selectId);

	/**
	 * 加载一级支行信息列表
	 * 
	 * @return 一级支行信息列表
	 */
	public List<Branch> getBranchSelectList();
	
	/**
	 * 更新机构信息
	 * @param branch
	 * @throws Exception
	 */
	public void updateBranch(Branch branch) throws Exception;

}
